package cn.hfjava.kz.entity.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class PermissonTreeVO {
    /**
     * 权限编号
     */
    @Schema(name = "权限编号", description = "使用自动增长主键赋值")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 权限名称，例如：目录名称，菜单名称，按钮名称
     */
    @Schema(name = "权限名称", description = "例如：目录名称，菜单名称，按钮名称")
    @TableField(value = "title")
    private String title;

    /**
     * 父节点ID，默认值为0，0表示第一级节点
     */
    @Schema(name = "父节点ID", description = "默认值为0，0表示第一级节点")
    @TableField(value = "pid")
    private Integer pid;

    /**
     * 祖级ids，作用：回显树形目录结构
     */
    @Schema(name = "祖级ids", description = "作用：回显树形目录结构")
    @TableField(value = "pids")
    private String pids;

    /**
     * 类型，默认值0，0表示目录类型，1表示菜单类型，2表示按钮类型
     */
    @Schema(name = "类型", description = "默认值0，0表示目录类型，1表示菜单类型，2表示按钮类型")
    @TableField(value = "type")
    private Integer type;

    /**
     * 图标，例如：fa fa-tasks
     */
    @Schema(name = "图标", description = "例如：fa fa-tasks")
    @TableField(value = "icon")
    private String icon;

    /**
     * 权限标识，例如：system:user:export
     */
    @Schema(name = "权限标识", description = "例如：system:user:export")
    @TableField(value = "perms")
    private String perms;

    /**
     * 请求地址，默认空字符串
     */
    @Schema(name = "请求地址", description = "默认空字符串")
    @TableField(value = "url")
    private String url;

    /**
     * 组件名称，默认空字符串
     */
    @Schema(name = "组件名称", description = "默认空字符串")
    @TableField(value = "name")
    private String name;

    /**
     * 组件路径，默认空字符串
     */
    @Schema(name = "组件路径", description = "默认空字符串")
    @TableField(value = "path")
    private String path;
    /**
     * 子菜单权限集合 children
     */
    private List<PermissonTreeVO> children;
    /**
     * 是否有子节点 true表示有子节点  false表示叶子节点
     */
    // private boolean hasChildren;



}
